home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gigarom 1
/
Gigarom Macintosh Archives (Quantum Leap)(CDRM1080320)(1993).iso
/
FILES
/
DEV
/
I-Z
/
Lex.cpt
/
Lex
/
STDIO_LEXLIB.π folder
/
LMOVB_DEBUG.C
< prev
next >
Wrap
Text File
|
1990-06-19
|
2KB
|
57 lines
/*
HEADER: CUG nnn.nn;
TITLE: LEX - A Lexical Analyser Generator
VERSION: 1.0 for IBM-PC
DATE: Jan 30, 1985
DESCRIPTION: A Lexical Analyser Generator. From UNIX
KEYWORDS: Lexical Analyser Generator YACC C PREP
SYSTEM: IBM-PC and Compatiables
FILENAME: LMOVB.C
WARNINGS: This program is not for the casual user. It will
be useful primarily to expert developers.
CRC: N/A
SEE-ALSO: YACC and PREP
AUTHORS: Scott Guthery 11100 leafwood lane Austin, TX 78750
COMPILERS: DESMET-C
REFERENCES: UNIX Systems Manuals
*/
/*
* Bob Denny 28-Aug-82 Remove reference to stdio.h
* Scott Guthery 20-Nov-83 Adapt for IBM PC & DeSmet C
*/
#include <stdio.h>
#include <ctype.h>
#include "lex.h"
SHORTINT
_lmovb_debug(ltab_ptr, the_char, state)
register struct lextab *ltab_ptr;
register SHORTINT the_char, state;
{
SHORTINT base, temp;
printf((char *)"\nState %d, char %c [%3d] ",
state, isprint(the_char) ? the_char : '*', the_char);
while ( (base = ltab_ptr->llbase[state]+the_char) > ltab_ptr->llnxtmax ||
(ltab_ptr->llcheck[base] & 0377) != state) {
if (state != ltab_ptr->llendst)
{
/*
* This miscompiled on Decus C many years ago:
* state = ltab_ptr->lldefault[state] & 0377;
*/
temp = ltab_ptr->lldefault[state] & 0377;
state = temp;
}
else {
printf((char *)"base %d ", base - the_char);
printf((char *)"--> goto final");
return(-1);
}
}
printf((char *)"base %d ", base - the_char);
printf((char *)"--> goto %d", ltab_ptr->llnext[base] & 0377);
return(ltab_ptr->llnext[base] & 0377);
}